1. Field of the Invention
The present invention relates to a technique of controlling devices.
2. Description of the Related Art
When one computer is connected to, for example, a scanner and a printer and a user of the computer desires to read image data with the scanner and to print the input image data with the printer, a prior art technique first activates an applications program for supporting the scanner, controls the scanner to read the image data according to the applications program, and temporarily stores the input image data into a memory in the computer. In this process, the technique causes a user interface for operating the scanner to be displayed in a window on a monitor. The user specifies desired settings, for example, regarding a reading operation, via the user interface for the scanner and gives instructions regarding the desired settings to the computer. The computer then causes the scanner to read the image data according to the desired settings. The technique subsequently activates another applications program for supporting the printer, reads the image data from the memory according to the applications program, and controls the printer to print the image data with the printer. In this process, the technique also causes a user interface for operating the printer to be displayed in a window on the monitor. The user specifies desired settings, for example, regarding a printing operation, via the user interface for the printer and gives instructions regarding the desired settings to the computer. The computer then causes the printer to print the image data according to the desired settings.
As described above, the prior art technique requires to activate the plurality of applications programs for supporting the respective devices and implement the data transfer between the devices, such as the scanner and the printer.
In one exemplified configuration, it is assumed that a certain device is connected to one computer and another device is connected to another computer, among a plurality of computers connecting with one another via a network. In this configuration, the prior art technique makes it rather difficult to transfer data between the certain device and the another device according to an applications program, which is activated by still another computer, since these computers are connected to one another via the network.
In the prior art technique, one predetermined device can receive and process the data transmitted from another predetermined device. It is, however, not guaranteed that one arbitrary device can receive and process the data transmitted from another arbitrary device. In some cases, effective data transfer is accordingly not available between these arbitrary devices.
The prior art technique causes different user interfaces for the respective devices to be displayed separately in the process of performing the data transfer between these devices. This configuration forces the user to separately specify instructions on the different user interfaces, thereby undesirably worsening the operatability.
The object of the present invention is thus to provide a device control system that enables a substantially fixed control according to an applications program, regardless of different types of devices, such as a scanner and a printer, and different types of communications paths, such as a local connection and a network connection.
At least part of the above and the other related objects is attained by a device control system for controlling at least one device. The device control system includes: a device abstraction unit that respectively corresponds to the device and transmits data or information to and from the corresponding device; an interface unit that respectively corresponds to the device abstraction unit and is connected to the corresponding device abstraction unit via a communications path, the interface unit mediating transmission of data or information between the corresponding device abstraction unit and an application unit, which is constructed by a specified applications program; and a communications path abstraction unit that is respectively interposed between each of the device abstraction unit and each of the interface unit, which mutually correspond to each other. The device abstraction unit apparently removes a difference in control procedure due to a type of the corresponding device, so as to provide the application unit with an identical control environment, which does not depend upon the type of the device, via the interface unit. The communications path abstraction unit apparently removes a difference in control procedure due to a type of the communications path, which connects each of the at least one device abstraction unit with the corresponding interface unit, so as to provide the application unit with an identical control environment, which does not depend upon the type of the communications path, via the interface unit.
The present invention is also directed to a method of controlling at least one device. The method includes the steps of: (a) creating a device abstraction unit that respectively corresponds to the device, transmits data or information to and from the corresponding device, and apparently removes a difference in control procedure due to a type of the corresponding device, so as to provide an application unit, which is constructed by a specified applications program, with an identical control environment, which does not depend upon the type of the device; (b) creating an interface unit that respectively corresponds to the device abstraction unit, is connected to the corresponding device abstraction unit via a communications path, and mediates transmission of data or information between the corresponding device abstraction unit and the application unit; (c) creating a communications path abstraction unit that respectively corresponds to the interface unit and apparently removes a difference in control procedure due to a type of the communications path, which connects the corresponding interface unit with the device abstraction unit further corresponding to the interface unit, so as to provide the application unit with an identical control environment, which does not depend upon the type of the communications path; and (d) causing the application unit to control the device via the interface unit, the communications path abstraction unit, and the device abstraction unit.
In the device control system and the method of controlling the devices according to the present invention, each device abstraction unit transmits data or information to and from the corresponding device and apparently removes a difference in control procedure due to the type of the corresponding device, so as to provide the application unit, which is constructed by a preset applications program, with an identical control environment that does not depend upon the type of the device. Each interface unit connects with the corresponding device abstraction unit via a communications path and mediates transmission of data or information between the corresponding device abstraction unit and the application unit. Each communications path abstraction unit apparently removes a difference in control procedure due to a type of the communications path, which connects each device abstraction unit with the corresponding interface unit, so as to provide the application unit with an identical control environment that does not depend upon the type of the communications path.
In the specification hereof, the devices include not only physical devices but part of the functions of the physical devices, those having the equivalent functions to the physical devices by the software, and those handled equivalently to the physical devices. The physical devices include a scanner, a printer, a digital camera, a facsimile, a copying machine, and a variety of other computer peripheral equipment. The part of the functions of the physical devices include, for example, an external presentation of only the facsimile function of a multi-functional color copying machine. Those having the equivalent functions to the physical devices and those handled equivalently to the physical devices include, for example, electronic mail, image processing, a processing server, and an applications server. The applications server means that, for example, when an applications program automatically retrieves an image file included in a cache directory of Web browser, the applications program itself functions as a stationary image input device, such as a digital camera. In this case, the device does not have any physical entity.
The communications path include not only those connecting different computers with each other across a network boundary but those connecting different processes with each other in an identical computer across a process boundary.
The arrangement of the present invention enables the applications program to control at least one device in a substantially fixed control environment via the device abstraction unit, without taking into account the type of the device. The arrangement of the invention also enables the applications program to control the device in a substantially fixed control environment via the communications path abstraction unit regardless of the location of the device, without taking into account the type of the interposed communications path.
In accordance with one preferable application of the present invention, the device control system includes a plurality of the devices and a plurality of the device abstraction units corresponding to the plurality of devices, wherein a specific one of the device abstraction units cancels the connection with the corresponding interface unit in response to an instruction sent from the application unit via the corresponding interface unit, and establishes a connection with another specified device abstraction unit via a specific communications path, so as to enable transmission of data or information.
The transmission of data or information between the device abstraction units, independently of the application unit and the interface unit, ensures the higher-speed transfer of data or information.
In the application discussed above, it is preferable that the device control system further includes a specific communications path abstraction unit that apparently removes a difference in control procedure due to a type of a specific communications path, so as to provide the two specified device abstraction units with an identical control environment, which does not depend upon the type of the specific communications path.
This arrangement enables transmission of data or information between the two specified device abstraction units, without taking into account the type of the interposed communications path.
In accordance with another preferable application of the present invention, the device control system further includes: a display unit that causes a symbol corresponding to each of the device to be displayed in a window; and a manipulation unit that manipulates the symbol displayed in the window. Either one of the application unit and the interface unit controls the device corresponding to the symbol according to the manipulation of the symbol by the manipulation unit.
The symbol may be any representation that can be displayed on. the display unit and enables the user to visually recognize the relation to a specific device. Typical examples of the symbol include an icon representing the specific device, a figure or a mark abstractly representing the specific device, and a series of letters showing the name of the specific device.
This arrangement enables the user to give a desired instruction for operating the device intuitively with the manipulation unit, while checking the display in the window on the display unit, thereby enhancing the operatability.
In accordance with still another preferable application of the present invention, the device control system includes a plurality of the devices as well as a plurality of the device abstraction units and a plurality of the interface units respectively corresponding to the plurality of devices, wherein each of the plurality of interface units provides the application unit with an identical interface, and each of the plurality of device abstraction units provides the interface unit with an identical interface.
The structure of providing the upper constituents with an identical interface apparently removes differences in control procedure between the lower devices and provides the upper constituents with an identical control environment.
In accordance with another preferable application of the present invention, the device control system includes a plurality of the devices and a plurality of the interface units corresponding to the plurality of devices, wherein a specific one of the plurality of interface units, when receiving an instruction of data transfer between one device corresponding to the specific interface unit and another device, which is output from the application unit, transmits information to and from another interface unit corresponding to the another device and determines whether or not data transfer between the device corresponding to the specific interface unit and the another device is available, based on the information.
This arrangement carries out the subsequent control procedure for controlling the devices only when the data transfer is available, based on the result of the determination. This effectively avoids the wasteful control operation.
The present invention is further directed to a computer program product for constructing a device control system for controlling at least one device. The computer program product includes: a computer readable medium; a first program code segment that causes a computer to create a device abstraction unit that respectively corresponds to the device, transmits data or information to and from the corresponding device, and apparently removes a difference in control procedure due to a type of the corresponding device, so as to provide an application unit, which is constructed by a specified applications program, with an identical control environment, which does not depend upon the type of the device; a second program code segment that causes the computer to create an interface unit that respectively corresponds to the device abstraction unit, is connected to the corresponding device abstraction unit via a communications path, and mediates transmission of data or information between the corresponding device abstraction unit and the application unit; and a third program code segment that causes the computer to create a communications path abstraction unit that respectively corresponds to the interface unit and apparently removes a difference in control procedure due to a type of the communications path, which connects the corresponding interface unit with the device abstraction unit further corresponding to the interface unit, so as to provide the application unit with an identical control environment, which does not depend upon the type of the communications path, wherein each of the program code segments is stored in the computer readable medium.
The computer executes the program code segments stored in the computer readable medium, so as to generate the respective constituents of the device control system. This accordingly exerts the same effects as those of the device control system discussed previously.
The principle of the present invention can be realized by a variety of applications, for example, a device control system, a method of controlling devices, a computer program for constructing the device control system, a recording medium in which the computer program is recorded, and data signals that represent the computer program and are embodied in a carrier.
These and other objects, features, aspects, and advantages of the present invention will become more apparent from the following detailed description of the preferred embodiment with the accompanying drawings.